18 research outputs found
Expression Templates Revisited: A Performance Analysis of the Current ET Methodology
In the last decade, Expression Templates (ET) have gained a reputation as an
efficient performance optimization tool for C++ codes. This reputation builds
on several ET-based linear algebra frameworks focused on combining both elegant
and high-performance C++ code. However, on closer examination the assumption
that ETs are a performance optimization technique cannot be maintained. In this
paper we demonstrate and explain the inability of current ET-based frameworks
to deliver high performance for dense and sparse linear algebra operations, and
introduce a new "smart" ET implementation that truly allows the combination of
high performance code with the elegance and maintainability of a
domain-specific language.Comment: 16 pages, 7 figure
Deflation for the off-diagonal block in symmetric saddle point systems
Deflation techniques are typically used to shift isolated clusters of small
eigenvalues in order to obtain a tighter distribution and a smaller condition
number. Such changes induce a positive effect in the convergence behavior of
Krylov subspace methods, which are among the most popular iterative solvers for
large sparse linear systems. We develop a deflation strategy for symmetric
saddle point matrices by taking advantage of their underlying block structure.
The vectors used for deflation come from an elliptic singular value
decomposition relying on the generalized Golub-Kahan bidiagonalization process.
The block targeted by deflation is the off-diagonal one since it features a
problematic singular value distribution for certain applications. One example
is the Stokes flow in elongated channels, where the off-diagonal block has
several small, isolated singular values, depending on the length of the
channel. Applying deflation to specific parts of the saddle point system is
important when using solvers such as CRAIG, which operates on individual blocks
rather than the whole system. The theory is developed by extending the existing
framework for deflating square matrices before applying a Krylov subspace
method like MINRES. Numerical experiments confirm the merits of our strategy
and lead to interesting questions about using approximate vectors for
deflation.Comment: 26 pages, 12 figure
Inexact inner-outer Golub-Kahan bidiagonalization method: A relaxation strategy
We study an inexact inner-outer generalized Golub-Kahan algorithm for the
solution of saddle-point problems with a two-times-two block structure. In each
outer iteration, an inner system has to be solved which in theory has to be
done exactly. Whenever the system is getting large, an inner exact solver is,
however, no longer efficient or even feasible and iterative methods must be
used. We focus this article on a numerical study showing the influence of the
accuracy of an inner iterative solution on the accuracy of the solution of the
block system. Emphasis is further given on reducing the computational cost,
which is defined as the total number of inner iterations. We develop relaxation
techniques intended to dynamically change the inner tolerance for each outer
iteration to further minimize the total number of inner iterations. We
illustrate our findings on a Stokes problem and validate them on a mixed
formulation of the Poisson problem.Comment: 25 pages, 9 figure